import nodemailer from 'nodemailer'

const transporter = nodemailer.createTransport({
  pool: true, // 池连接
  maxConnections: 10, // 参数为数字，同时存在的连接数（这个也可以表示为并行的连接）默认为5
  maxMessages: 50, // 单个连接发送的最大消息数量（默认为100）也可以设置为infinity （无上限）
  host: 'smtp.qq.com',
  port: 465,
  secure: true, // use TLS
  auth: {
    user: process.env.APP_EMAIL,
    pass: process.env.APP_EMAIL_PASSWORD,
  },
})

const mailOptions = {
  from: process.env.APP_EMAIL, // 发件人邮箱
  to: process.env.APP_SEEYOU_EMAIL, // 收件人邮箱
  subject: '', // 主题
  text: '',
  html: '',
}

interface SendMailParams {
  subject: string
  to?: string
  html: string
}

// 邮件服务器准备
transporter.verify(error => {
  if (error) {
    console.log('邮件服务器准备失败: ', error)
  } else {
    console.log('邮件服务器准备成功')
  }
})

export const sendMail = async (Params: SendMailParams) => {
  const options = { ...mailOptions, ...Params }
  await transporter.sendMail(options, (error, res) => {
    error ? console.log(error) : console.log(res.response)
    // transporter.close()
  })
}
